package cn.fl.riskctrl.brdb.transform;


import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.riskctrl.brdb.vo.BrcjwsReportVO;
import fl.riskctrl.facade.brdb.dto.BrcjwsReportDTO;

import java.util.ArrayList;
import java.util.List;


/**
 * @Description: 百融法院裁决书报告表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class BrcjwsReportVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto BrcjwsReportDTO
	 * @return BrcjwsReportVO
	 */
	public static BrcjwsReportVO toVO(BrcjwsReportDTO dto) {
		BrcjwsReportVO vo = null;
		if (dto != null) { 
			vo = new BrcjwsReportVO();
			vo.setId(dto.getId());
			vo.setUsrNm(dto.getUsrNm());//名称
			vo.setCertNo(dto.getCertNo());//证件号码
			vo.setCertTypCd(dto.getCertTypCd());//证件类型(CST0005)
			vo.setMp(dto.getMp());//手机号码
			vo.setResultFlag(dto.getResultFlag());//返回标识(flag)
			vo.setResultCode(dto.getResultCode());//返回代码(code)
			vo.setScoreautolea(dto.getScoreautolea());//取值范围为300-1000分，分数越高代表客户偿还能力越好，违约概率越小
			vo.setSwiftNumber(dto.getSwiftNumber());//查询返回流水号
			vo.setFlagScore(dto.getFlagScore());//风险识别产品输出标识
			vo.setRsFinalDecision(dto.getRsFinalDecision());//最终决策结果
			vo.setRsProductName(dto.getRsProductName());//策略产品名称
			vo.setRsProductType(dto.getRsProductType());//策略产品类型
			vo.setRsScoreDecision(dto.getRsScoreDecision());//信用风险识别决策结果
			vo.setRemark(dto.getRemark());//备注
			vo.setIsValid(dto.getIsValid());//是否有效(SYS0021)
			vo.setIsDel(dto.getIsDel());//是否删除(SYS0021)
			if (dto.getBrcjwsSpeLstDTO() != null){
				vo.setBrcjwsSpeLstVO(BrcjwsSpeLstVOTransform.toVO(dto.getBrcjwsSpeLstDTO()));
			}
			if (dto.getBrcjwsSpeLstPartDTO() != null){
				vo.setBrcjwsSpeLstPartVO(BrcjwsSpeLstPartVOTransform.toVO(dto.getBrcjwsSpeLstPartDTO()));
			}



			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo BrcjwsReportVO
	 * @return BrcjwsReportDTO
	 */
	public static BrcjwsReportDTO toDTO(BrcjwsReportVO vo) {
		BrcjwsReportDTO dto = null;
		if (vo != null) {
			dto = new BrcjwsReportDTO();
			dto.setId(vo.getId());
			dto.setUsrNm(vo.getUsrNm());//名称
			dto.setCertNo(vo.getCertNo());//证件号码
			dto.setCertTypCd(vo.getCertTypCd());//证件类型(CST0005)
			dto.setMp(vo.getMp());//手机号码
			dto.setResultFlag(vo.getResultFlag());//返回标识(flag)
			dto.setResultCode(vo.getResultCode());//返回代码(code)
			dto.setScoreautolea(vo.getScoreautolea());//取值范围为300-1000分，分数越高代表客户偿还能力越好，违约概率越小
			dto.setSwiftNumber(vo.getSwiftNumber());//查询返回流水号
			dto.setFlagScore(vo.getFlagScore());//风险识别产品输出标识
			dto.setRsFinalDecision(vo.getRsFinalDecision());//最终决策结果
			dto.setRsProductName(vo.getRsProductName());//策略产品名称
			dto.setRsProductType(vo.getRsProductType());//策略产品类型
			dto.setRsScoreDecision(vo.getRsScoreDecision());//信用风险识别决策结果
			dto.setRemark(vo.getRemark());//备注
			dto.setIsValid(vo.getIsValid());//是否有效(SYS0021)
			dto.setIsDel(vo.getIsDel());//是否删除(SYS0021)
			if (vo.getBrcjwsSpeLstVO() != null){
				dto.setBrcjwsSpeLstDTO(BrcjwsSpeLstVOTransform.toDTO(vo.getBrcjwsSpeLstVO()));
			}
			if (vo.getBrcjwsSpeLstPartVO() != null){
				dto.setBrcjwsSpeLstPartDTO(BrcjwsSpeLstPartVOTransform.toDTO(vo.getBrcjwsSpeLstPartVO()));
			}

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}

	 /**
	  * DTO集合 转 VO集合
	  * @param list
	  * @return List<BrcjwsReportVO>
	  */
	 public static List<BrcjwsReportVO> toVOList(List<BrcjwsReportDTO> list) {
		 List<BrcjwsReportVO>  voList = new ArrayList<BrcjwsReportVO>();
		 if(CollectionUtils.isNotEmpty(list)){
			 for (BrcjwsReportDTO dto : list) {
				 voList.add(toVO(dto));
			 }
		 }
		 return voList;
	 }

	 /**
	  * VO集合 转 DTO集合
	  * @param list List<BrcjwsReportVO>
	  * @return List<BrcjwsReportDTO>
	  */
	 public static List<BrcjwsReportDTO> toDTOList(List<BrcjwsReportVO> list) {
		 List<BrcjwsReportDTO>  dtoList = new ArrayList<BrcjwsReportDTO>();
		 if(CollectionUtils.isNotEmpty(list)){
			 for (BrcjwsReportVO vo : list) {
				 dtoList.add(toDTO(vo));
			 }
		 }
		 return dtoList;
	 }

}
